<?php
error_reporting(E_ALL);
ini_set('display_errors','off');

include_once "ConexionBD.php";
include_once "../negocio/Documento.php";

class DocumentoSQL{

     private $sql;
    
    function DocumentoSQL() {$this->sql = ConexionBD::getInstancia();}
    
    public function digitarDocumento(&$obj)
    {   
        $objFormato = $obj->getFormato();
        $objSolicitud = $obj->getObjSolic();
        $objFuncionario = $obj->getObjFunc();
        $objRepertorioPrivado = $obj->getObjRepertorioPrivado();
        $objRepertorioEscPublica = $obj->getObjRepertorioEscPublica();
        //echo $objRepertorioPrivado->getFojas();
        //exit;
        //exit;
        $this->sql->ejecutarSql("select nextval('documento_sec')");
        //$r=$this->sql->ejecutarSql("select currval('documento_sec')");
        //exit;
        if($objRepertorioPrivado!=null){
        $sql="insert into repertorio_vehiculo_motorizado values(nextval('rpid_sec'),nextval('repertorioPrivado_sec')||'-'||date_part('year', NOW()), '".$objRepertorioPrivado->getContenido()."', '".$objRepertorioPrivado->getComprador()."', '".$objRepertorioPrivado->getVendedor()."', current_timestamp, currval('documento_sec'), '".$objRepertorioPrivado->getNombre_vendedor()."', '".$objRepertorioPrivado->getApellido_vendedor()."', '".$objRepertorioPrivado->getNombre_comprador()."', '".$objRepertorioPrivado->getApellido_comprador()."', null, null, '".$objFuncionario->getRut()."', '".$objRepertorioPrivado->getFojas()."')";
        if(!pg_query( $this->sql->getConexion() , $sql )){ die("Error de conexion11111. ". pg_last_error()); }
        }
        if($objRepertorioEscPublica!=null){

        //echo "publica";
           $ultima_pag = $this->sql->ejecutarSql("select max(fojas) from repertorio_escrituras_publicas");
           
           $foja = $ultima_pag[0][0]+$objRepertorioEscPublica->getFojas();
            //exit;
        $sql="insert into repertorio_escrituras_publicas values(nextval('rpubid_sec'), '".$objRepertorioEscPublica->getNombre1()."', '".$objRepertorioEscPublica->getApellido1()."',
        '".$objRepertorioEscPublica->getNombre2()."', '".$objRepertorioEscPublica->getApellido2()."', '".$objRepertorioEscPublica->getRut1()."', '".$objRepertorioEscPublica->getRut2()."',
            '".$objRepertorioEscPublica->getContrato()."', '".$objRepertorioEscPublica->getAbogado()."',nextval('repertoriopublica_sec')||'-'||date_part('year', NOW()),
               '".$objRepertorioEscPublica->getProtocolo()."', '".$objFuncionario->getRut()."', '".$foja."', '".$objRepertorioEscPublica->getAnotaciones()."' ,current_timestamp, currval('documento_sec'))";
        if(!pg_query( $this->sql->getConexion() , $sql )){ die("Error de conexion11111. ". pg_last_error()); }

        $r = $this->sql->ejecutarSql("select currval('repertoriopublica_sec')");
        //echo $r[0][0];

        }

        if(trim($objSolicitud->getRut_empresa())!=""){
             
            $sql="insert into SOLICITUD values('".$objSolicitud->getFecha()."', nextval('solicitud_sec')::varchar, '".$objSolicitud->getNombre_solicitante()."', '".$objSolicitud->getRut_empresa()."', '".$objSolicitud->getDerecho()."', '".$objSolicitud->getTipo_pago()."', '".$objSolicitud->getEstado()."', '".$objSolicitud->getNumero_turno()."')";
            //echo $sql;

        }
            else{
            
            $sql="insert into SOLICITUD values('".$objSolicitud->getFecha()."', nextval('solicitud_sec')::varchar, '".$objSolicitud->getNombre_solicitante()."', null , '".$objSolicitud->getDerecho()."', '".$objSolicitud->getTipo_pago()."', '".$objSolicitud->getEstado()."', '".$objSolicitud->getNumero_turno()."')";
            //echo $sql;

            }
        if(!pg_query( $this->sql->getConexion() , $sql )){ die("Error de conexion33333. ". pg_last_error()); }
        //'".$objSolicitud->getNro()."'

        $sql="insert into DOCUMENTO values('".$obj->getEstado()."', current_timestamp, currval('documento_sec'), '".$objFormato->getCod_formato()."', currval('solicitud_sec'), '".$objFuncionario->getRut()."', '".$obj->getNombre_doc()."','".preg_replace('/\[interno_repertorio\]/', $r[0][0], $obj->getContenido())."')";
        //echo "<br>$sql<br>";
        if(!pg_query( $this->sql->getConexion() , $sql )){ die("Error de conexion22222. ". pg_last_error()); }
        
        
        pg_close($conn);
        
        
    }   
    
     public function buscarDatos(&$obj)
    {
        //echo "<br>antes sql"; 
        //$sql=   "SELECT * FROM documento WHERE estado = 'en espera'";
        $sql= "SELECT * FROM documento d where UPPER(d.folio_doc) like UPPER('%".$obj->getFolio_doc()."%') and UPPER(d.nombre_doc) like UPPER('%".$obj->getNombre_doc()."%') and UPPER(d.estado) like UPPER('%".$obj->getEstado()."%')";
        $resultado = $this->sql->ejecutarSql($sql);
       // echo"<br>$sql<br>";
        

        return $resultado;
    }
     public function listarDatos(&$obj)
    {
        //echo "<br>antes sql"; 
        $sql=   "SELECT * FROM documento order by fecha_creacion desc";
        
        $resultado = $this->sql->ejecutarSql($sql);
        
        //echo"<br>$sql<br>"; 

        return $resultado;
    }
    
     public function listarDatosEstado($fecha_desde, $fecha_hasta)
    {
        //echo "<br>antes sql"; 
        $fecha_hasta = $fecha_hasta." 23:59:59";
        $sql=   "SELECT * FROM documento WHERE fecha_creacion >= '%".$fecha_desde."%'
                and fecha_creacion <= '%".$fecha_hasta."%' order by estado";
        
        $resultado = $this->sql->ejecutarSql($sql);
        
        //echo"<br>$sql<br>"; 
        
        return $resultado;
    }
     public function listarDatosCategoria($fecha_desde, $fecha_hasta)
    {
        //echo "<br>antes sql"; 
        $fecha_hasta = $fecha_hasta." 23:59:59";
        $sql=   "SELECT d.nombre_doc, d.fecha_creacion, c.nombre_categoria FROM documento d, formato_documento f, categoria c WHERE d.fecha_creacion >= '%".$fecha_desde."%'
                and d.fecha_creacion <= '%".$fecha_hasta."%' and f.cod_formato = d.cod_formato and c.id_categoria = f.id_categoria order by c.id_categoria";
        
        $resultado = $this->sql->ejecutarSql($sql);
        
        //echo"<br>$sql<br>"; 
        
        return $resultado;
    }
     public function buscarDatosRut($rut, $folio)
    {
        //echo "<br>antes sql"; 
        if($folio==""){
            $sql=   "select *
                    from documento
                    where nro_solicitud IN (select nro_solicitud 
                                           from solicitud
                                           where nro_solicitud IN (select nro_solicitud 
                                                                  from realiza_cliente_solicitud 
                                                                  where rut='".$rut."')
                    )";
            }
        
        if($rut==""){
            $sql=   "select *
                    from documento
                    where folio_doc = '".$folio."' 
            ";
        }
        
        $resultado = $this->sql->ejecutarSql($sql);
        
        //echo"<br>$sql<br>"; 

        return $resultado;
    }
    public function buscarDatos1(&$obj)
    {
        //echo "<br>antes sql"; 
        $sql=   "SELECT * FROM documento WHERE estado = 'en espera'";
        //$sql= "SELECT * FROM documento d where UPPER(d.estado) like UPPER('%".$obj->getEstado()."%') and UPPER(d.folio_doc) like UPPER('%".$obj->getFolio_doc()."%')";
        $resultado = $this->sql->ejecutarSql($sql);
       // echo"<br>$sql<br>";
        

        return $resultado;
    }
    
 public function listarDocumentoPrecio($fecha_desde, $fecha_hasta)
    {
        //echo "<br>antes sql"; 
        $sql=   "select d.nombre_doc, f.precio from documento d, formato_documento f
                where	d.cod_formato = f.cod_formato and d.fecha_creacion >= '%".$fecha_desde."%' and d.fecha_creacion <= '%".$fecha_hasta."%'
                order by f.precio";
        //$sql= "SELECT * FROM documento d where UPPER(d.estado) like UPPER('%".$obj->getEstado()."%') and UPPER(d.folio_doc) like UPPER('%".$obj->getFolio_doc()."%')";
        $resultado = $this->sql->ejecutarSql($sql);
       // echo"<br>$sql<br>";
        

        return $resultado;
    }
    
    
 
    
}

?>